package org.xx.armory.mbeans;

/**
 * 应用程序的管理接口。
 */
public interface ApplicationProxyMBean {
    /**
     * 获取应用程序的名字。
     *
     * @return 应用程序的名字。
     */
    String getName();

    /**
     * 获取应用程序的描述。
     *
     * @return 应用程序的描述。
     */
    String getDescription();

    /**
     * 获取应用程序的当前状态描述。
     *
     * @return 应用程序的当前状态描述。
     */
    String getStatus();

    /**
     * 启动应用程序。
     *
     * @throws Exception
     *         如果启动过程中出现错误。
     */
    void start()
            throws Exception;

    /**
     * 终止应用程序。
     *
     * @throws Exception
     *         如果终止过程中出现错误。
     */
    void shutdown()
            throws Exception;
}
